commonlibsse_ng\re\a/
ActorPackage.rs

1use crate::re::BSAtomic::BSSpinLock;
2use crate::re::BSPointerHandle::ObjectRefHandle;
3use crate::re::{ActorPackageData, TESPackage};
4
5#[commonlibsse_ng_derive_internal::to_bitflags]
6#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
7#[repr(u8)]
8pub enum ACTOR_PACKAGE_FLAG {
9    None = 0,
10    SaveLoadSharedPackage = 1 << 0,
11}
12
13#[repr(C)]
14#[derive(Debug)]
15pub struct ActorPackage {
16    pub packageLock: BSSpinLock,               // 00
17    pub package: *mut TESPackage,              // 08
18    pub data: *mut ActorPackageData,           // 10
19    pub target: ObjectRefHandle,               // 18
20    pub currentProcedureIndex: i32,            // 1C
21    pub packageStartTime: f32,                 // 20
22    pub modifiedPackageFlag: u32,              // 24
23    pub modifiedInterruptFlag: u16,            // 28
24    pub actorPackageFlags: ACTOR_PACKAGE_FLAG, // 2A
25    pub preferredSpeed: i8,                    // 2B
26    pub pad2C: u32,                            // 2C
27}
28const _: () = assert!(core::mem::size_of::<ActorPackage>() == 0x30);